The purpose of this category is to help visualize the mapping properties of a complex analytic function. The basic method for using this category is to first, as usual, choose a canned object from the Conformal Map menu, or else choose User Defined... from the menu and roll your own mapping. As soon as a mapping is chosen, the program draws a coordinate grid in the graphics window (the "preimage grid"). This is a "Cartesian" grid in the rectangle of the complex z-plane defined by umin < Re(z) <umax and vmin < Im(z) < vmax, and the total resolution of this grid is (uResolution) * (vResolution). (As usual, you can modify the values of umin, umax vmin, vmax, uResolution and vResolution using the Settings Menu.)
After the preimage grid is drawn, it disappears from the screen and the program immediately draws its image (the "image grid") under the chosen mapping. But the preimage grid has not been erased! You can see it at any time by holding down the option and command keys and pressing the mouse at any point in graphics window. The preimage grid will appear and stay in view until you release the mouse button, at which point the image grid will reappear. You can keep switching back and forth between the two images by pressing and releasing the mouse button while holding down the option and command keys. (While the program may take several moments to create the two images, this switching is virtually instantaneous).
The idea, of course, is to develop a feeling about what gets mapped where by the chosen mapping. However, if the map is at all complicated, then it could be a little difficult to match up a line in the pre-image with its corresponding curve in the image. To help with the matching, each gridline is drawn in a different color---with the same color used of course for both the preimage and image. This is called "color coding the gridlines". Of course it only works with a color monitor and when using at least 256 colors., and it can be turned off by choosing Color Code Grid Lines from the Conformal Map menu. (The color coding is most effective against a black background, so black is the default background in this category, but of course it is possible to choose a white background by using the Background submenu in the View menu.)
You can switch the preimage domain from a rectangle in cartesian coordinates to a wedge in polar coordinates by choosing Polar Grid from the Conformal Map menu. Now the preimage curves will be parts of rays thru the origin and parts of circles centered at the origin.
You can add your own lines and circles to the preimage view (and their images to the image view) by selecting either Choose Line by Mouse or Choose Circle by Mouse from the Conformal Map menu. After selecting Choose Line by Mouse, the preimage view will appear, and you should press the mouse to select one point of your line, and then drag to a different point to select the second point. Immediately after you release the mouse at the second point, the line will be drawn in red. After a second the image view will return, and the image curve of the line you chose will be drawn , also in red. For a circle the procedure is the same, with the first mouse point establishing the center and the second some point on the circumference. Circles and their images are drawn in green.
If you click and drag then a conformal map image will follow the mouse around. If you now depress the Shift key and move the cursor up or down then the conformal map image gets smaller or larger. Morever, if you hold down Command and then drag out a rectangle in the usual Mac way, then when you release the mouse (with Command still down) your selection rectangle will zoom to the entire window.
Morphing in this category defaults to deforming between the identity map and the selected map.
To make things a little more interesting, we have included among the pre-programmed examples the Jacobi elliptic function sn(z,m). Here m represents the modulus and can be set using the Set Parameters... item of the Settings menu.
The User Defined... dialog is a little different for this category than for the categories dealing with real-valued objects. At the top there is a box, pointed to on the left by "z ---->". In this box you should fill in a formula for the function of the complex variable z that you wish to study. This formula---which defaults to that for a general polynomial of degree five, aa+bb*z+cc*z^2+dd*z^3+ee*z^4+ff*z^5---can involve not only z, but also nine complex parameters, aa, bb,cc,...,ii, which for convenience can be set in this same dialog. (They may also be set using the Set Parameters... item of the Settings menu. ) What you are really setting in this dialog are expressions for these parameters, not the parameters themselves, which are evaluated from the expressions when you dismiss the dialog. This means that you can for example use the expression pi + e*i in the box for aa to give it the value 3.14159 + 2.71828 i. (You get the Greek symbol pi by typing Option-p---but you can also write pi if you prefer.) (Note that this explains why we have chosen to use aa, bb, cc, ... instead of simply a,b,c,... for the names of the nine parameters---it was to avoid conflicting with e=2.71828... and i=sqrt(-1).) The expressions for the parameters are evaluated in alphabetic order, which means you will get what you expect if you set aa to 1, bb to 2 and cc to aa+bb (but setting aa to bb+cc and bb to 1 and cc to 2 won't work.)
The available built-in complex functions that can be used in creating the expression for the conformal mapping function are: sin, cos, tan, cot, csc, sec, sinh, cosh, tanh, coth arcsin, arccos, arctan, arccot, ln, exp, sqrt, cubert, sn, cn, dn, Re, Im, Arg, abs, conj, round, and trunc. Some of these need a little explaining. Many of them are multiple-valued, and we have tried to make the "standard" branch-cuts. (In particular, the arg and ln function have branch cuts along the negative real axis). The seemingly real-valued functions Re, Im, Arg, abs actually are complex with zero imaginary part. The function abs is the modulus function and conj is complex conjugation. Round and trunc apply themselves to both the real and imaginary parts of their arguments. The functions sn, cn, and dn are the usual Jacobi elliptic functions. They depend on a parameter, the modulus, usually denoted by m. The value of m can be set in the same dialog as the parameters aa, bb,cc,...,ii.
The complex expression parser and evaluator, like the real one, was written by David Eck. In fact, at my request , David modified his real expression unit to handle complex expressions, and I cannot thank him enough for doing me this favor at a time when he was also very busy with his own work.